/*******************************************************************************
 * 版权：北京润尼尔网络科技有限公司，保留所有版权<br>
 * 版本：v1.0.0<br>
 * 文件：AppViewComponent.js<br>
 * 日期：2017年9月29日<br>
 * 作者: 杨顺强<br>
 * 功能：应用程序组件对象基类，定义组件对象基本接口<br>
 * 
 * 修改记录：<br>
 * 日期 描述 更新功能<br>
 ******************************************************************************/
 
 window.makeNamespace(window,"Rainier.UI.V2");

 Rainier.UI.V2.AppViewComponent = Rainier.Basic.CompositeObject.extend({

 	NAME : "Rainier.UI.V2.Application",

 	/**
	 * 函数名称：init<br>
	 * 函数功能：构造函数<br>
	 * 参数信息：app : 应用程序对象，
	 * 异常信息：无<br>
	 */
 	init : function(app,parentContainer){
 		if(!app){
 			var message = "创建对象失败，请先创建Application对象，并作为参数传入组件对象";
 			throw new Error(message);
 		}
 		this.application = app;
 		this.context     = app.getContext();
 		this.parentContainer = parentContainer;
 		this._super();
 	},

 	/**
	 * 函数名称：createView<br>
	 * 函数功能：根据参数信息： 是否存在容器元素，进行不同形式的布局设置<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
 	createView : function(){
 		throw new Error("此函数有子类实现,当前对象可理解为抽象类，不向外提供实例，谢谢配合");
 	},

 	/**
	 * 函数名称：createViewDom<br>
	 * 函数功能：创建当前组件的dom元素<br>
	 * 参数输入：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
 	createViewDom : function(){
 		throw new Error("此函数有子类实现,当前对象可理解为抽象类，不向外提供实例，谢谢配合");
 	},

 	/**
	 * 函数名称：createView<br>
	 * 函数功能：对组件中的控制元素，进行事件绑定，此处，调用context内部的功能函数<br>
	 * 参数输入：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
 	bindCallBackFn : function(){
 		throw new Error("此函数有子类实现,当前对象可理解为抽象类，不向外提供实例，谢谢配合");
 	},

 	/**
	 * 函数名称：enableComponent<br>
	 * 函数功能：启用组件内部功能<br>
	 * 参数输入：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
 	enableComponent : function(){
 		throw new Error("此函数有子类实现,当前对象可理解为抽象类，不向外提供实例，谢谢配合");
 	},

 	/**
	 * 函数名称：disableComponent<br>
	 * 函数功能：禁用组件功能<br>
	 * 参数输入：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
 	disableComponent : function(){
 		throw new Error("此函数有子类实现,当前对象可理解为抽象类，不向外提供实例，谢谢配合");
 	},

 	/**
	 * 函数名称：stopEventPropagation<br>
	 * 函数功能：禁用组件功能<br>
	 * 参数输入：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
 	stopEventPropagation : function(e){
    	if(e.preventDefault){
            e.preventDefault();
            e.stopPropagation()
        }else{
            e.returnValue=false;
            e.cancelBubble=true
        }
    }
 });